In contrast to volatile memory, non-volatile memory can store data that persists even after the power is removed from the non-volatile memory. However, in some types of non-volatile memory such as non-volatile flash memory, a write operation may change a bit of memory in only one direction, such as from a logical one state to a logical zero state, for example, without first erasing the particular bit of memory. Thus if a zero is written to a particular bit, that bit may not be changed back to a one state by another write operation. Instead, the bit is first “erased” which changes the bit back to a one state. After the bit is erased, a zero may be written to the erased bit.
Another limitation of some types of non-volatile memory such as flash memory, is that data can only be erased an entire block of memory locations at a time. As a result, instead of erasing a bit, byte or word of data at a time, an entire block encompassing many sectors or pages of data depending upon the size of the block of data, is erased at a time. Still further, such non-volatile memory typically has a limitation on the number of times a particular block of memory may be erased before the block “wears out” and loses the ability to reliably store data.